/**
 * 2016，thor.com，all rights reserved。
 * 
 * Project：		palmmall-spi
 * Filename：	TodoService.java
 * Created：		2016年7月26日
 * Creator：		wolv
 */
package com.thor.palmmall.rest.todo;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.thor.commons.exception.ThorServiceException;
import com.thor.commons.query.QueryResult;

/**
 * @author wolv
 *
 */
@Path("/task")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface ATodoService {

  @POST
  @Path(value = "/query")
  QueryResult<ATask> getTasks(ATaskQueryParam parameter) throws ThorServiceException;

  @GET
  @Path(value = "/{uuid}")
  ATaskWithOperation get(@PathParam("uuid") String uuid) throws ThorServiceException;

  @POST
  @Path("/execute")
  void execute(ATaskExecution execution) throws ThorServiceException;

  @POST
  @Path("/signIn")
  void signIn(ATaskParam param) throws ThorServiceException;

  @POST
  @Path("/queryCount")
  List<ATaskQueryCount> queryCount(AQueryCountParam param) throws ThorServiceException;
  
  @POST
  @Path("/assign")
  void assign(ATaskParam execution) throws ThorServiceException;
  
  @POST
  @Path("/assignUser")
  void assignUser(ATaskParam execution) throws ThorServiceException;
}
